export function download(blob: Blob, filename: string) {
  // 创建 blob 的临时下载资源
  const cacheFileUrl = URL.createObjectURL(blob);

  const a = document.createElement("a");
  a.href = cacheFileUrl;
  a.download = filename;
  a.target = "_blank"; // 外部打开下载操作，避免白屏
  document.body.appendChild(a);
  a.click();
  document.body.removeChild(a);
  // 释放blob 的临时下载资源
  URL.revokeObjectURL(cacheFileUrl); // 释放资源

  //! 由于执行了 模拟 a 标签的下载点击动作，所以在此进行一定的延时，体验上获取能够增加一定的成效
  return new Promise<void>(resolve => {
    // 多等待一秒
    setTimeout(() => {
      resolve();
    }, 500);
  });
}

export function getRandomName() {
  const time = new Date().getTime().toString(36);
  const random = Math.round(Math.random() * 36 * 36 * 36)
    .toString(36)
    .padStart(3, "_");

  return time + random;
}
